---
title: "Reserved Keywords"
description: "All reserved keywords in ReScript"
canonical: "/docs/manual/reserved-keywords"
section: "Language Features"
order: 27
---

# Reserved Keywords

> **Note**: Some of these words are reserved purely for backward compatibility.
>
> If you _need_ to use one of these names as binding and/or field name, see [Use Illegal Identifier Names](./use-illegal-identifier-names.mdx).

- `and`
- `as`
- `assert`

{/* - `begin` */}

{/* - `class` */}

- `constraint`

{/* - `do` */}
{/* - `done` */}

- `else`
  {/* - `end` */}
  {/* - `esfun` */}
- `exception`
- `external`

* `false`
* `for`
  {/* - `fun` */}
  {/* - `function` */}
  {/* - `functor` */}

- `if`
- `in`
- `include`
  {/* - `inherit` */}
  {/* - `initializer` */}

* `lazy`
* `let`

- `module`
- `mutable`

{/* - `new` */}
{/* - `nonrec` */}

{/* - `object` */}

- `of`
- `open`
  {/* - `or` */}

{/* - `pri` */}
{/* - `pub` */}

- `rec`

{/* - `sig` */}
{/* - `struct` */}

- `switch`

{/* - `then` */}

- `true`
- `try`
- `type`

{/* - `val` */}
{/* - `virtual` */}

- `when`
- `while`
- `with`
